package SlidingWindow;

/**
 * @ClassName LC395
 * @Description TODO
 * @Author ZJX
 * @Date 2024/9/21 20:23
 * @Version 1.0
 */
public class LC395 {
    public int longestSubstring(String s, int k) {
        if (s == null || s.length() == 0) {
            return 0;
        }

        int[] map = new int[26];
        for (char c : s.toCharArray()){
            map[c - 'a']++;
        }

        for (int i = 0; i < s.length(); i++) {
            if (map[s.charAt(i) - 'a'] < k){
                // 如果字符出现次数少于 k，分割字符串并递归处理
                int left = longestSubstring(s.substring(0,i),k);
                int right = longestSubstring(s.substring(i+1),k);
                return Math.max(left,right);
            }
        }
        // 如果没有字符出现次数少于 k，返回字符串的长度
        return s.length();
    }
}
